package com.ruoyi.project.domain;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;

/**
 * 月度形象图对象 monthly_image
 * 
 * @author liboyu
 * @date 2024-06-04
 */
public class MonthlyImage extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 月度形象图主键 */
    private Long imageId;

    /** 项目主键 */
    @Excel(name = "项目主键")
    private Long projectId;

    /** 月度形象图标题 */
    @NotBlank(message = "月度形象图标题不能为空")
    @Length(max = 50, message = "月度形象图标题不能超过50个字符")
    @Excel(name = "月度形象图标题")
    private String imageTitle;

    /** 详情 */
    @NotBlank(message = "详情不能为空")
    @Length(max = 200, message = "详情不能超过200个字符")
    @Excel(name = "详情")
    private String imageDatil;

    /** 数据更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "数据更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updateDate;

    /** 效果图 */
    @NotBlank(message = "效果图不能为空")
    @Excel(name = "效果图")
    private String effectSrc;

    String detailString;

    List<MonthlyImageDetail> details;

    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder("MonthlyImage{");
        sb.append("imageId=").append(imageId);
        sb.append(", projectId=").append(projectId);
        sb.append(", imageTitle='").append(imageTitle).append('\'');
        sb.append(", imageDatil='").append(imageDatil).append('\'');
        sb.append(", updateDate=").append(updateDate);
        sb.append(", effectSrc='").append(effectSrc).append('\'');
        sb.append(", detailString='").append(detailString).append('\'');
        sb.append(", details=").append(details);
        sb.append('}');
        return sb.toString();
    }

    public String getDetailString() {
        return detailString;
    }

    public void setDetailString(String detailString) {
        this.detailString = detailString;
    }

    public List<MonthlyImageDetail> getDetails() {
        return details;
    }

    public void setDetails(List<MonthlyImageDetail> details) {
        this.details = details;
    }

    public void setImageId(Long imageId)
    {
        this.imageId = imageId;
    }

    public Long getImageId() 
    {
        return imageId;
    }
    public void setProjectId(Long projectId) 
    {
        this.projectId = projectId;
    }

    public Long getProjectId() 
    {
        return projectId;
    }
    public void setImageTitle(String imageTitle) 
    {
        this.imageTitle = imageTitle;
    }

    public String getImageTitle() 
    {
        return imageTitle;
    }
    public void setImageDatil(String imageDatil) 
    {
        this.imageDatil = imageDatil;
    }

    public String getImageDatil() 
    {
        return imageDatil;
    }
    public void setUpdateDate(Date updateDate) 
    {
        this.updateDate = updateDate;
    }

    public Date getUpdateDate() 
    {
        return updateDate;
    }
    public void setEffectSrc(String effectSrc) 
    {
        this.effectSrc = effectSrc;
    }

    public String getEffectSrc() 
    {
        return effectSrc;
    }

}
